var table = layui.table;
/**
 * 页面初始化加载查询
 */
var tableIns = table.render({
    elem: '#sysRoleList'
    , url: '/sysRole/list/' //接口
    , page: true  //分页
    , response: {
        statusCode: 'S_00000' //重新规定成功的状态码为 S_00000，table 组件默认为 0
    }
    , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
        return {
            "code": res.errorCode, //解析接口状态
            "msg": res.errorMsg, //解析提示文本
            "count": res.data.sysRoleSize, //解析数据长度
            "data": res.data.sysRoles //解析数据列表
        };
    }
    , cols: [[ //表头
        {field: 'roleName', title: '角色名称'}
        , {field: 'remark', title: '备注'}
        , {title: '操作', toolbar: '#barDemo'}
    ]]
});

/**
 * 条件查询方法
 */
function query() {
    //执行重载
    tableIns.reload({
        page: {
            curr: 1 //重新从第 1 页开始
        }
        , where: {
            roleName: $("#roleName").val()
        }
    });
}

/**
 * 新增提交方法
 */
function toAdd() {
    //弹出新增页面
    openLayer('/sysRole/toAdd', '新增角色', '800px', '450px');

    //页面渲染
    layui.form.render();

    //展示资源树
    showTree('/sysRole/listResource', 'resource', true);

    //新增提交
    mySubmit('addSubmit', 'POST', addIds);
}

/**
 * 通用的资源树方法
 * @param url
 * @param id
 */
function showTree(url, id, showCheckbox) {

    $.ajax({
        url: url
        , async: false
        , type: 'GET'
        , success: function (res1) {
            if (res1.errorCode == 'S_00000') {
                layui.tree.render({
                    elem: '#' + id
                    , data: res1.data
                    , id: id
                    , showCheckbox: showCheckbox
                });
            }
        }
    });

}


//工具条事件
table.on('tool(tableDemo)', function (obj) {
    //获取当前行数据
    var data = obj.data;
    //获取客户id
    var roleId = data.roleId;
    if (obj.event === 'detail') {
        //layer.msg('ID：' + data.customerId + ' 的查看操作');
        //弹出详情页面
        openLayer('/sysRole/toDetail/' + roleId, '详情角色', '800px', '450px');

        //展示资源树
        showTree('/sysRole/listResource/' + roleId, 'resource', true);

    } else if (obj.event === 'del') {
        layer.confirm('真的删除行么', function (index) {
            //接口删除
            myDelete('/sysRole/delete/' + roleId, 'DELETE');
            //删除当前行
            //obj.del();
            //关闭弹窗
            layer.close(index);
        });
    } else if (obj.event === 'edit') {
        //弹出新增页面
        openLayer('/sysRole/toUpDate/' + roleId, '编辑角色', '800px', '500px');

        //页面渲染
        layui.form.render();

        //展示资源树
        showTree('/sysRole/listResource/' + roleId, 'resource', true);

        //修改提交
        mySubmit('updateSubmit', 'PUT', addIds);
    }
});

var addIds = function addIds(field) {
    let checkData = layui.tree.getChecked("resource");
    field.resourceIds = getIds(checkData, []);
}

function getIds(checkData, arr) {
    for (let i in checkData) {
        arr.push(checkData[i].id);
        arr = getIds(checkData[i].children, arr)
    }
    return arr
}
